Chapter 8 Beta diversity

load("data/data.Rdata")
beta_q0n <- genome_counts_filt %>%
  column_to_rownames(., "genome") %>%
  filter(rowSums(. != 0, na.rm = TRUE) > 0) %>%
  select_if(~!all(. == 0)) %>%
  hillpair(., q = 0)

beta_q1n <- genome_counts_filt %>%
  column_to_rownames(., "genome") %>%
  filter(rowSums(. != 0, na.rm = TRUE) > 0) %>%
  select_if(~!all(. == 0)) %>%
  hillpair(., q = 1)

beta_q1p <- genome_counts_filt %>%
  column_to_rownames(., "genome") %>%
  filter(rowSums(. != 0, na.rm = TRUE) > 0) %>%
  select_if(~!all(. == 0)) %>%
  hillpair(., q = 1, tree = genome_tree)
beta_q1f <- genome_counts_filt %>%
  column_to_rownames(., "genome") %>%
  filter(rowSums(. != 0, na.rm = TRUE) > 0) %>%
  select_if(~!all(. == 0)) %>%
  hillpair(., q = 1, dist = dist)

8.0.1 Permanova

#Richness
betadisper(beta_q0n$C, sample_metadata$region) %>% permutest(., pairwise = TRUE) 

Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999

Response: Distances
          Df   Sum Sq  Mean Sq      F N.Perm Pr(>F)    
Groups     1 0.063118 0.063118 11.828    999  0.001 ***
Residuals 56 0.298846 0.005337                         
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
                 Daneborg Ittoqqortoormii
Daneborg                            0.001
Ittoqqortoormii 0.0011087                
adonis2(beta_q0n$C ~ region,
        data = sample_metadata %>% arrange(match(sample,labels(beta_q1n$C))),
        permutations = 999) %>%
        broom::tidy() %>%
        tt()
tinytable_du4xz5keex37cva90wm3
term df SumOfSqs R2 statistic p.value
region 1 1.037174 0.2581367 19.4856 0.001
Residual 56 2.980753 0.7418633 NA NA
Total 57 4.017927 1.0000000 NA NA
#Neutral diversity
betadisper(beta_q1n$C, sample_metadata$region) %>% permutest(., pairwise = TRUE) 

Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999

Response: Distances
          Df  Sum Sq Mean Sq      F N.Perm Pr(>F)    
Groups     1 0.47943 0.47943 32.667    999  0.001 ***
Residuals 56 0.82185 0.01468                         
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
                 Daneborg Ittoqqortoormii
Daneborg                            0.001
Ittoqqortoormii 4.391e-07                
adonis2(beta_q1n$C ~ region, 
        data = sample_metadata %>% arrange(match(sample,labels(beta_q1n$C))), 
        permutations = 999) %>%
        broom::tidy() %>%
        tt()
tinytable_upunv1z5omm6okdrjob1
term df SumOfSqs R2 statistic p.value
region 1 2.066564 0.2792806 21.70015 0.001
Residual 56 5.333033 0.7207194 NA NA
Total 57 7.399597 1.0000000 NA NA
#Phylogenetic diversity
betadisper(beta_q1p$C, sample_metadata$region) %>% permutest(., pairwise = TRUE) 

Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999

Response: Distances
          Df  Sum Sq  Mean Sq      F N.Perm Pr(>F)    
Groups     1 0.09491 0.094915 11.957    999  0.001 ***
Residuals 56 0.44451 0.007938                         
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
                 Daneborg Ittoqqortoormii
Daneborg                            0.002
Ittoqqortoormii 0.0010468                
adonis2(beta_q1p$C ~ region, 
        data = sample_metadata %>% arrange(match(sample,labels(beta_q1n$C))), 
        permutations = 999) %>%
        broom::tidy() %>%
        tt()
tinytable_k86dgbb4vd7vecox2g5q
term df SumOfSqs R2 statistic p.value
region 1 0.09872015 0.09107706 5.611383 0.001
Residual 56 0.98519887 0.90892294 NA NA
Total 57 1.08391902 1.00000000 NA NA
#Functional diversity
betadisper(beta_q1f$C, sample_metadata$region) %>% permutest(., pairwise = TRUE) 
adonis2(beta_q1f$C ~ region, 
        data = sample_metadata %>% arrange(match(sample,labels(beta_q1n$C))), 
        permutations = 999) %>%
        broom::tidy() %>%
        tt()

8.0.2 Richness diversity plot

beta_q0n$S %>%
  vegan::metaMDS(., trymax = 500, k = 2, trace=0) %>%
  vegan::scores() %>%
  as_tibble(., rownames = "sample") %>%
  dplyr::left_join(sample_metadata, by = join_by(sample == sample)) %>%
  group_by(region) %>%
  mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
  mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
  ungroup() %>%
  ggplot(aes(x = NMDS1, y = NMDS2, color = region, fill = region)) +
      scale_color_manual(name="Region",
                         values=c("#6A9AC3","#F3B942")) +
      scale_fill_manual(name="Region",
                        values=c("#6A9AC350","#F3B94250")) +
    geom_point(size = 4) +
    #   stat_ellipse(aes(color = beta_q1n_nmds$Groups))+
    geom_segment(aes(x = x_cen, y = y_cen, xend = NMDS1, yend = NMDS2), alpha = 0.9, show.legend = FALSE) +
    theme_classic() +
    theme(
      axis.text.x = element_text(size = 12),
      axis.text.y = element_text(size = 12),
      axis.title = element_text(size = 20, face = "bold"),
      axis.text = element_text(face = "bold", size = 18),
      panel.background = element_blank(),
      axis.line = element_line(size = 0.5, linetype = "solid", colour = "black"),
      legend.text = element_text(size = 16),
      legend.title = element_text(size = 18),
      legend.position = "right", legend.box = "vertical"
    )

8.0.3 Neutral diversity plot

beta_q1n$S %>%
  vegan::metaMDS(., trymax = 500, k = 2, trace=0) %>%
  vegan::scores() %>%
  as_tibble(., rownames = "sample") %>%
  dplyr::left_join(sample_metadata, by = join_by(sample == sample)) %>%
  group_by(region) %>%
  mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
  mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
  ungroup() %>%
  ggplot(aes(x = NMDS1, y = NMDS2, color = region, fill = region)) +
      scale_color_manual(name="Region",
                         values=c("#6A9AC3","#F3B942")) +
      scale_fill_manual(name="Region",
                        values=c("#6A9AC350","#F3B94250")) +
    geom_point(size = 4) +
    geom_segment(aes(x = x_cen, y = y_cen, xend = NMDS1, yend = NMDS2), alpha = 0.9) +
    theme_classic() +
    theme(
      axis.text.x = element_text(size = 12),
      axis.text.y = element_text(size = 12),
      axis.title = element_text(size = 20, face = "bold"),
      axis.text = element_text(face = "bold", size = 18),
      panel.background = element_blank(),
      axis.line = element_line(size = 0.5, linetype = "solid", colour = "black"),
      legend.text = element_text(size = 16),
      legend.title = element_text(size = 18),
      legend.position = "right", legend.box = "vertical"
    )

8.0.4 Phylogenetic diversity plot

beta_q1p$S %>%
  vegan::metaMDS(., trymax = 500, k = 2, trace=0) %>%
  vegan::scores() %>%
  as_tibble(., rownames = "sample") %>%
  dplyr::left_join(sample_metadata, by = join_by(sample == sample)) %>%
  group_by(region) %>%
  mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
  mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
  ungroup() %>%
  ggplot(aes(x = NMDS1, y = NMDS2, color = region, fill = region)) +
      scale_color_manual(name="Region",
                         values=c("#6A9AC3","#F3B942")) +
      scale_fill_manual(name="Region",
                        values=c("#6A9AC350","#F3B94250")) +
    geom_point(size = 4) +
    geom_segment(aes(x = x_cen, y = y_cen, xend = NMDS1, yend = NMDS2), alpha = 0.9) +
    theme_classic() +
    theme(
      axis.text.x = element_text(size = 12),
      axis.text.y = element_text(size = 12),
      axis.title = element_text(size = 20, face = "bold"),
      axis.text = element_text(face = "bold", size = 18),
      panel.background = element_blank(),
      axis.line = element_line(size = 0.5, linetype = "solid", colour = "black"),
      legend.text = element_text(size = 16),
      legend.title = element_text(size = 18),
      legend.position = "right", legend.box = "vertical"
    )